LDARGS 1
CALL (1, "L1_main")
STOP
FLabel (1, "L1_main")
INCSP 1
GETBP
OFFSET 1
ADD
CSTI 0
STI
INCSP -1
GOTO "L4"
Label "L3"
GETBP
OFFSET 1
ADD
LDI
CALL (1, "L2_fac")
PRINTI
INCSP -1
GETBP
OFFSET 1
ADD
GETBP
OFFSET 1
ADD
LDI
CSTI 1
ADD
STI
INCSP -1
INCSP 0
Label "L4"
GETBP
OFFSET 1
ADD
LDI
GETBP
OFFSET 0
ADD
LDI
CSTI 1
ADD
LT
IFNZRO "L3"
Label "L5"
GETBP
OFFSET 0
ADD
LDI
PRINTI
INCSP -1
INCSP -1
RET 0
FLabel (1, "L2_fac")
GETBP
OFFSET 0
ADD
LDI
CSTI 0
EQ
IFZERO "L6"
CSTI 1
RET 1
GOTO "L7"
Label "L6"
GETBP
OFFSET 0
ADD
LDI
GETBP
OFFSET 0
ADD
LDI
CSTI 1
SUB
CALL (1, "L2_fac")
MUL
RET 1
Label "L7"
INCSP 0
RET 0